library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
method from
print.tbl_lazy
print.tbl_sql
── Attaching packages ────────────────────────────────────────────────────────────────────────── tidyverse 1.3.1 ──
✓ ggplot2 3.3.5 ✓ purrr 0.3.4
✓ tibble 3.1.2 ✓ dplyr 1.0.6
✓ tidyr 1.1.3 ✓ stringr 1.4.0
✓ readr 1.4.0 ✓ forcats 0.5.1
── Conflicts ───────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
x tidyr::expand() masks Matrix::expand()
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
x tidyr::pack() masks Matrix::pack()
x tidyr::unpack() masks Matrix::unpack()
library(lme4)
library(ggpubr)
Registered S3 method overwritten by 'data.table':
method from
print.data.table
Registered S3 methods overwritten by 'car':
method from
influence.merMod lme4
cooks.distance.influence.merMod lme4
dfbeta.influence.merMod lme4
dfbetas.influence.merMod lme4
source("helpers.R")
bran_palette = c("#7ae7e5","#B2A6DE", "#fe5f55", "#14342b", "#69385c")
theme_set(theme_minimal())
lex_freqs <- read.csv("freq_preped.csv") %>%
mutate(left_surprisal = (-log(mean_left_neutral))/(-log(mean_left_gendered))) %>%
mutate(right_surprisal = (-log(mean_right_neutral))/(-log(mean_right_gendered)))
gender_transcendence_cols <- c('subject_information.gender_q1','subject_information.gender_q2','subject_information.gender_q3','subject_information.gender_q4','subject_information.gender_q5')
gender_linked_cols <- c('subject_information.gender_q6','subject_information.gender_q7','subject_information.gender_q8','subject_information.gender_q9','subject_information.gender_q10','subject_information.gender_q11','subject_information.gender_q12','subject_information.gender_q13')
Data Read-in
prod_data <- read.csv("production_data.csv")
Exclusions
prod_exclusion <- prod_data %>% filter(name=='attention') %>%
group_by(workerid) %>%
summarise(accuracy = mean(correct)) %>%
mutate(exclude = ifelse(accuracy < 0.80,'Yes','No')) %>%
filter(exclude == "Yes")
prod_data <- prod_data[!(prod_data$workerid %in% prod_exclusion$workerid),]
Additional Information
prod_data <- prod_data %>%
mutate(gender_trans = 100 - (rowMeans(prod_data[gender_transcendence_cols]))) %>%
mutate(gender_link = rowMeans(prod_data[gender_linked_cols]))
gender_all = c('gender_trans','gender_link')
prod_data <- prod_data %>%
mutate(gender_total = rowMeans(prod_data[gender_all]))
prod_data <- prod_data %>%
filter(type == "critical") %>%
mutate(response_gender = ifelse(response == "actress" | response == "anchorwoman" | response == "stewardess" | response == "businesswoman" | response == 'camerawoman' | response == 'congresswoman' | response == 'craftswoman' | response == 'crewwoman' | response == 'firewoman' | response == 'forewoman' | response == 'heiress' | response == 'heroine' | response == 'hostess' | response == 'huntress' | response == 'laywoman' | response == 'policewoman' | response == 'saleswoman' | response == 'stuntwoman' | response == 'villainess' | response == 'weatherwoman',"female",ifelse(response == "anchor" | response == "flight attendant" | response == "businessperson" | response == 'camera operator' | response == 'congressperson' | response == 'craftsperson' | response == 'crewmember' | response == 'firefighter' | response == 'foreperson' | response == 'layperson' | response == 'police officer' | response == 'salesperson' | response == 'stunt double' | response == 'meteorologist',"neutral",ifelse(response == "anchorman" | response == "steward" | response == "businessman" | response == 'cameraman' | response == 'congressman' | response == 'craftsman' | response == 'crewman' | response == 'fireman' | response == 'foreman' | response == 'layman' | response == 'policeman' | response == 'salesman' | response == 'stuntman' | response == 'weatherman',"male",'male/neutral')))) %>%
mutate(congruency = ifelse(gender == response_gender,"true","false")) %>%
mutate(neutrality = ifelse(response_gender == "neutral","true","false"))%>%
mutate(morph_type = ifelse(lexeme!= 'actor' & lexeme!= 'host' & lexeme !='hunter' & lexeme!= 'villain' & lexeme!= 'heir' & lexeme!= 'hero','compound','adoption')) %>%
mutate(poli_party = ifelse(subject_information.party_alignment == 1 | subject_information.party_alignment == 2,'Republican',ifelse(subject_information.party_alignment == 4 | subject_information.party_alignment == 5,'Democrat','Non-Partisan')))
Responses by Political Ideology
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(morph_type =="compound") %>%
ggplot(aes(x=poli_party, fill=response_gender)) +
geom_bar(position="fill") +
facet_wrap(~gender) +
scale_fill_manual(values = bran_palette) +
labs(x="Participant Political Party", fill="Gender of Response", y="Proportion of Responses", title="Gender of Response by Gender of Stimulus Name") +
theme(text=element_text(size=15)) +
theme(axis.text.x = element_text(angle=25))
ggsave("prod_all_poli.png", width=7,height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data %>%
filter(!is.na(subject_information.party_alignment)) %>%
filter(morph_type =="compound") %>%
ggplot(aes(x=subject_information.party_alignment, fill=response_gender)) +
geom_bar(position="fill") +
facet_wrap(~gender) +
scale_fill_manual(values = bran_palette) +
labs(x="Participant Political Party", fill="Gender of Response", y="Proportion of Responses", title="Gender of Response by Gender of Stimulus Name")
Gender of Response by Political Alignment and Gender Ideology
prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="" & morph_type=="compound") %>%
group_by(gender,gender_total,poli_party) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=gender_total, y=proportion, color=gender)) +
geom_point() +
geom_smooth() +
scale_color_manual(values = bran_palette) +
facet_wrap(~poli_party) +
labs(x="Gender Ideology Score", y="Proportion of Gender Neutral Responses",color="Gender of Name Seen") +
theme(text=element_text(size=15))
`summarise()` has grouped output by 'gender', 'gender_total'. You can override using the `.groups` argument.
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
ggsave("prod_neutral_poli.png", width=10,height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,subject_information.age,poli_party) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=subject_information.age, y=proportion, color=gender)) +
geom_point() +
geom_smooth() +
scale_color_manual(values = bran_palette)
`summarise()` has grouped output by 'gender', 'subject_information.age'. You can override using the `.groups` argument.
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
Warning: Removed 4 rows containing non-finite values (stat_smooth).
Warning: Removed 4 rows containing missing values (geom_point).
my_comparisons <- list( c("Democrat","Republican"),c("Democrat","Non-Partisan"),c("Republican","Non-Partisan"))
prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
filter(subject_information.gender == "Male" | subject_information.gender == "Female") %>%
filter(poli_party != "Non-Partisan") %>%
group_by(gender,workerid,poli_party,subject_information.gender) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=poli_party, y=proportion, fill=poli_party)) +
geom_boxplot(varwidth = T) +
geom_jitter(alpha=0.1) +
scale_fill_manual(values=bran_palette) +
facet_grid(subject_information.gender~gender) +
theme(legend.position = "none") +
labs(x="Participant Political Party", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
stat_compare_means(label = "p.signif")
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party'. You can override using the `.groups` argument.
prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,workerid,poli_party,subject_information.gender) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=poli_party, y=proportion, fill=poli_party)) +
geom_boxplot(varwidth = T) +
geom_jitter(alpha=0.1) +
scale_fill_manual(values=bran_palette) +
facet_wrap(~gender) +
theme(legend.position = "none") +
labs(x="Participant Political Party", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20))
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party'. You can override using the `.groups` argument.
#%+ # stat_compare_means(comparisons = my_comparisons, label = "p.signif")
ggsave("prod_neutral_poli_box.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,poli_party) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=poli_party, y=proportion, fill=poli_party)) +
geom_bar(stat="identity") +
scale_fill_manual(values=bran_palette) +
facet_wrap(~gender) +
theme(legend.position = "none") +
labs(x="Participant Political Party", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20))
`summarise()` has grouped output by 'gender'. You can override using the `.groups` argument.
gender_comparisons <- list( c("male","female"))
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(poli_party != "Non-Partisan") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,workerid,poli_party,subject_information.gender) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=gender, y=proportion, fill=gender)) +
geom_boxplot(varwidth = T) +
geom_jitter(alpha=0.1) +
scale_fill_manual(values=bran_palette) +
facet_wrap(~poli_party) +
theme(legend.position = "none") +
labs(x="Stimuli Gender", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20))
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party'. You can override using the `.groups` argument.
ggsave("prod_neutral_poli_box_gender.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(subject_information.gender,workerid,poli_party) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=poli_party, y=proportion, fill=poli_party)) +
geom_boxplot(varwidth = T) +
geom_jitter(alpha=0.1) +
scale_fill_manual(values=bran_palette) +
facet_wrap(~subject_information.gender) +
theme(legend.position = "none") +
labs(x="Participant Political Party", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
stat_compare_means(comparisons = my_comparisons, label = "p.signif")
`summarise()` has grouped output by 'subject_information.gender', 'workerid'. You can override using the `.groups` argument.
Warning: Computation failed in `stat_signif()`:
not enough 'y' observations
Warning in wilcox.test.default(c(0.1, 0.05, 0.2, 0.3, 0.3, 0.25, 0.2, 0.3, :
cannot compute exact p-value with ties
Warning in wilcox.test.default(c(0.1, 0.05, 0.2, 0.3, 0.3, 0.25, 0.2, 0.3, :
cannot compute exact p-value with ties
Warning in wilcox.test.default(c(0.35, 0.2, 0.15, 0.15, 0.25, 0.1, 0.2, :
cannot compute exact p-value with ties
Warning: Computation failed in `stat_signif()`:
not enough 'y' observations
prod_data %>%
filter(poli_party == "Democrat" | poli_party =="Republican") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender=="male") %>%
group_by(workerid,poli_party) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=poli_party, y=proportion, fill=poli_party)) +
geom_boxplot(varwidth = T) +
geom_jitter(alpha=0.1) +
scale_fill_manual(values=bran_palette) +
theme(legend.position = "none") +
labs(x="Participant Political Party", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
stat_compare_means()
`summarise()` has grouped output by 'workerid'. You can override using the `.groups` argument.
prod_data %>%
filter(poli_party == "Democrat" | poli_party =="Republican") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender=="female") %>%
group_by(workerid,poli_party) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=poli_party, y=proportion, fill=poli_party)) +
geom_boxplot(varwidth = T) +
geom_jitter(alpha=0.1) +
scale_fill_manual(values=bran_palette) +
theme(legend.position = "none") +
labs(x="Participant Political Party", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
stat_compare_means()
`summarise()` has grouped output by 'workerid'. You can override using the `.groups` argument.
Gender by Gender, no Ideology
prod_data %>%
filter(morph_type =="compound") %>%
ggplot(aes(x=gender, fill=response_gender)) +
geom_bar(position="fill") +
scale_fill_manual(values = bran_palette) +
labs(x="Stimulus Gender", fill="Gender of Response", y="Proportion of Responses", title="Gender of Response by Gender of Stimulus Name") +
theme_minimal()
Models
prod_data_compounds <- prod_data %>%
filter(morph_type == "compound") %>%
mutate(cgender_total = scale(gender_total)) %>%
mutate(response_congruency = as.numeric(ifelse(congruency=="true","1","0"))) %>%
mutate(cage = scale(subject_information.age)) %>%
mutate(neutrality_binary = ifelse(neutrality=="true",1,0))
final_dat <- merge(prod_data_compounds,lex_freqs,by="lexeme") %>%
mutate(neutrality_binary = ifelse(neutrality=="true",1,0)) %>%
filter(morph_type == "compound") %>%
mutate(cgender_total = scale(gender_total)) %>%
mutate(response_congruency = as.numeric(ifelse(congruency=="true","1","0"))) %>%
mutate(cage = scale(subject_information.age)) %>%
mutate(cmean_left_neutral = scale(mean_left_neutral)) %>%
mutate(mean_all = (mean_left_neutral + mean_right_neutral)/2) %>%
mutate(cmean_all = scale(mean_all))
production_model_one <- lmer(neutrality_binary~cgender_total*poli_party + gender + cmean_all + (1|workerid) + (1|lexeme) + (1|name) + (1|cage),data=final_dat)
summary(production_model_one)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: neutrality_binary ~ cgender_total * poli_party + gender + cmean_all +
(1 | workerid) + (1 | lexeme) + (1 | name) + (1 | cage)
Data: final_dat
REML criterion at convergence: 3975.3
Scaled residuals:
Min 1Q Median 3Q Max
-2.7375 -0.6993 -0.1105 0.7926 2.9613
Random effects:
Groups Name Variance Std.Dev.
workerid (Intercept) 0.0264195 0.16254
cage (Intercept) 0.0021613 0.04649
name (Intercept) 0.0002662 0.01632
lexeme (Intercept) 0.0633306 0.25166
Residual 0.1481373 0.38489
Number of obs: 3794, groups: workerid, 271; cage, 31; name, 24; lexeme, 14
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.53666 0.07108 14.67983 7.550 1.99e-06 ***
cgender_total -0.11912 0.02036 262.00393 -5.850 1.46e-08 ***
poli_partyNon-Partisan -0.01318 0.03831 258.50483 -0.344 0.731161
poli_partyRepublican -0.11234 0.02917 264.94213 -3.852 0.000147 ***
gendermale -0.11782 0.01427 21.89822 -8.256 3.61e-08 ***
cmean_all 0.03931 0.06756 11.99948 0.582 0.571371
cgender_total:poli_partyNon-Partisan 0.11801 0.04689 259.63915 2.517 0.012445 *
cgender_total:poli_partyRepublican 0.11628 0.02812 264.67427 4.135 4.77e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) cgndr_ pl_N-P pl_prR gndrml cmn_ll c_:_N-
cgender_ttl 0.109
pl_prtyNn-P -0.135 -0.219
pl_prtyRpbl -0.175 -0.294 0.332
gendermale -0.100 -0.002 -0.001 0.002
cmean_all 0.000 0.000 0.000 0.000 0.002
cgndr_:_N-P -0.050 -0.426 0.207 0.129 -0.008 0.000
cgndr_tt:_R -0.076 -0.728 0.160 -0.034 -0.004 0.000 0.312
(table(prod_data$subject_information.gender))
Female Male Other
40 3380 1980 80
prod_gender_table <- prod_data %>%
group_by(workerid,subject_information.gender,poli_party) %>%
summarise(subject_gender = paste(unique(subject_information.gender)))
`summarise()` has grouped output by 'workerid', 'subject_information.gender'. You can override using the `.groups` argument.
table(prod_gender_table$subject_gender,prod_gender_table$poli_party)
Democrat Non-Partisan Republican
1 0 1
Female 82 25 62
Male 42 10 46
Other 4 0 0
prod_data_all <- read.csv("production_data.csv") %>%
filter(type=="filler_semantic" | type=="filler_grammatical") %>%
group_by(lexeme,type) %>%
summarise(lexeme=paste(unique(lexeme)))
`summarise()` has grouped output by 'lexeme'. You can override using the `.groups` argument.
table(prod_data_all$type)
filler_grammatical filler_semantic
20 30
prod_data_means <- prod_data %>%
filter(!is.na(poli_party)) %>%
filter(poli_party != "Non-Partisan") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,workerid,poli_party,subject_information.gender,subject_information.age,subject_information.education,gender_total) %>%
summarise(proportion = mean(response_neutral))
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party', 'subject_information.gender', 'subject_information.age', 'subject_information.education'. You can override using the `.groups` argument.
table(prod_data_means$proportion,prod_data_means$poli_party,prod_data_means$gender)
, , = female
Democrat Republican
0 2 7
0.1 12 10
0.2 15 24
0.3 26 25
0.4 17 30
0.5 29 8
0.6 12 2
0.7 11 3
0.8 5 0
, , = male
Democrat Republican
0 7 14
0.1 23 36
0.2 27 26
0.3 17 16
0.4 19 12
0.5 14 5
0.6 12 0
0.7 6 0
0.8 4 0
production_model_two <- lmer(proportion~poli_party*gender + (1|workerid) + (1|subject_information.age) + (1|subject_information.gender), data=prod_data_means)
summary(production_model_two)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: proportion ~ poli_party * gender + (1 | workerid) + (1 | subject_information.age) +
(1 | subject_information.gender)
Data: prod_data_means
REML criterion at convergence: -311.1
Scaled residuals:
Min 1Q Median 3Q Max
-2.19989 -0.61477 -0.00973 0.59707 2.23551
Random effects:
Groups Name Variance Std.Dev.
workerid (Intercept) 0.0101117 0.10056
subject_information.age (Intercept) 0.0016933 0.04115
subject_information.gender (Intercept) 0.0006769 0.02602
Residual 0.0197075 0.14038
Number of obs: 472, groups: workerid, 236; subject_information.age, 28; subject_information.gender, 3
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.40370 0.02517 2.65099 16.039 0.00103 **
poli_partyRepublican -0.09572 0.02313 407.95877 -4.139 4.24e-05 ***
gendermale -0.07734 0.01755 233.99985 -4.408 1.59e-05 ***
poli_partyRepublican:gendermale -0.03284 0.02594 233.99985 -1.266 0.20675
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) pl_prR gndrml
pl_prtyRpbl -0.397
gendermale -0.349 0.379
pl_prtyRpb: 0.236 -0.561 -0.676
prod_data_means_male <- prod_data %>%
filter(!is.na(poli_party)) %>%
filter(poli_party != "Non-Partisan") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="" & gender!="female") %>%
group_by(workerid,poli_party,subject_information.gender,subject_information.age,subject_information.education) %>%
summarise(proportion = mean(response_neutral))
`summarise()` has grouped output by 'workerid', 'poli_party', 'subject_information.gender', 'subject_information.age'. You can override using the `.groups` argument.
production_model_three <- lmer(proportion~poli_party +(1|subject_information.age) + (1|subject_information.gender), data=prod_data_means_male)
summary(production_model_three)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: proportion ~ poli_party + (1 | subject_information.age) + (1 | subject_information.gender)
Data: prod_data_means_male
REML criterion at convergence: -139
Scaled residuals:
Min 1Q Median 3Q Max
-2.17714 -0.72167 -0.04505 0.65158 2.52308
Random effects:
Groups Name Variance Std.Dev.
subject_information.age (Intercept) 0.002981 0.05460
subject_information.gender (Intercept) 0.001186 0.03443
Residual 0.028970 0.17020
Number of obs: 236, groups: subject_information.age, 28; subject_information.gender, 3
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.32367 0.03034 2.12804 10.670 0.00697 **
poli_partyRepublican -0.12832 0.02313 230.59583 -5.547 7.94e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr)
pl_prtyRpbl -0.317
prod_data_means_female <- prod_data %>%
filter(!is.na(poli_party)) %>%
filter(poli_party != "Non-Partisan") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="" & gender!="male") %>%
group_by(workerid,poli_party,subject_information.gender,subject_information.age,subject_information.education) %>%
summarise(proportion = mean(response_neutral))
`summarise()` has grouped output by 'workerid', 'poli_party', 'subject_information.gender', 'subject_information.age'. You can override using the `.groups` argument.
production_model_four <- lmer(proportion~poli_party +(1|subject_information.age) + (1|subject_information.gender), data=prod_data_means_female)
summary(production_model_four)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: proportion ~ poli_party + (1 | subject_information.age) + (1 | subject_information.gender)
Data: prod_data_means_female
REML criterion at convergence: -140.1
Scaled residuals:
Min 1Q Median 3Q Max
-2.3366 -0.6389 0.1072 0.5433 2.4808
Random effects:
Groups Name Variance Std.Dev.
subject_information.age (Intercept) 1.607e-03 0.040086
subject_information.gender (Intercept) 9.383e-05 0.009687
Residual 2.970e-02 0.172325
Number of obs: 236, groups: subject_information.age, 28; subject_information.gender, 3
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.40530 0.01919 3.62572 21.117 6.29e-05 ***
poli_partyRepublican -0.09768 0.02314 233.53487 -4.222 3.47e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr)
pl_prtyRpbl -0.531
prod_data_means_all <- prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,workerid,poli_party,subject_information.gender,subject_information.age,subject_information.education,gender_total) %>%
summarise(proportion = mean(response_neutral))
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party', 'subject_information.gender', 'subject_information.age', 'subject_information.education'. You can override using the `.groups` argument.
prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,workerid,poli_party,subject_information.gender) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=proportion, fill=poli_party)) +
geom_histogram() +
scale_fill_manual(values=bran_palette) +
facet_grid(poli_party~gender) +
theme(legend.position = "none") +
labs(x="Proportion of Responses", y="Number of Participants",title="Proportions of Neutral Responses by Stimuli Gender", fill="Political Party") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
theme_grey()
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party'. You can override using the `.groups` argument.
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#%+ # stat_compare_means(comparisons = my_comparisons, label = "p.signif")
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(poli_party != "Non-Partisan") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
filter(lexeme=="flight attendant") %>%
group_by(gender,workerid,poli_party,subject_information.gender) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=gender, y=proportion, fill=gender)) +
geom_boxplot(varwidth = T) +
geom_jitter(alpha=0.1) +
scale_fill_manual(values=bran_palette) +
facet_wrap(~poli_party) +
theme(legend.position = "none") +
labs(x="Stimuli Gender", y="Proportion",title="Mean Prop. of Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20))
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party'. You can override using the `.groups` argument.
prod_data_means_rep <- prod_data_means %>%
filter(poli_party == "Republican")
production_model_five <- lmer(proportion~gender_total + (1|subject_information.age), data=prod_data_means_rep)
summary(production_model_five)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: proportion ~ gender_total + (1 | subject_information.age)
Data: prod_data_means_rep
REML criterion at convergence: -176.3
Scaled residuals:
Min 1Q Median 3Q Max
-1.6955 -0.9045 -0.1941 0.8435 2.9019
Random effects:
Groups Name Variance Std.Dev.
subject_information.age (Intercept) 0.0006875 0.02622
Residual 0.0232941 0.15262
Number of obs: 216, groups: subject_information.age, 24
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 2.603e-01 2.435e-02 8.419e+01 10.690 <2e-16 ***
gender_total -2.647e-04 6.927e-04 1.983e+02 -0.382 0.703
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr)
gender_totl -0.856
prod_data_means_dem <- prod_data_means %>%
filter(poli_party == "Democrat")
production_model_five <- lmer(proportion~gender_total + (1|workerid), data=prod_data_means_dem)
summary(production_model_five)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: proportion ~ gender_total + (1 | workerid)
Data: prod_data_means_dem
REML criterion at convergence: -122.3
Scaled residuals:
Min 1Q Median 3Q Max
-2.07915 -0.59145 0.03162 0.59555 2.71479
Random effects:
Groups Name Variance Std.Dev.
workerid (Intercept) 0.01298 0.1140
Residual 0.02357 0.1535
Number of obs: 258, groups: workerid, 129
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.448326 0.020841 127.000000 21.511 < 2e-16 ***
gender_total -0.005513 0.001031 127.000000 -5.345 4.06e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr)
gender_totl -0.747
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(morph_type == "compound") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,lexeme,poli_party,subject_information.gender) %>%
summarise(proportion = mean(response_neutral)) %>%
ggplot(aes(x=gender, y=proportion)) +
geom_boxplot(varwidth=T) +
scale_fill_manual(values=bran_palette) +
# facet_wrap(~lexeme) +
theme(legend.position = "none") +
labs(x="Proportion of Responses", y="Number of Participants",title="Proportions of Neutral Responses by Stimuli Gender", fill="Political Party") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
theme_grey() +
stat_compare_means()
`summarise()` has grouped output by 'gender', 'lexeme', 'poli_party'. You can override using the `.groups` argument.
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(lexeme == "flight attendant") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender) %>%
summarize(average_flight = mean(response_neutral)) %>%
ggplot(aes(x=gender, y=average_flight)) +
geom_bar(stat="identity") +
scale_fill_manual(values=bran_palette) +
theme(legend.position = "none") +
labs(x="Proportion of Responses", y="Number of Participants",title="Proportions of Neutral Responses by Stimuli Gender", fill="Political Party") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
theme_grey() +
stat_compare_means()
prod_data %>%
filter(!is.na(poli_party)) %>%
#filter(poli_party != "Non-Partisan") %>%
group_by(poli_party) %>%
summarize(mean_ideo = mean(gender_total), CI.Low = ci.low(gender_total), CI.High = ci.high(gender_total)) %>%
mutate(YMin = mean_ideo - CI.Low, YMax = mean_ideo + CI.High) %>%
ggplot(aes(x=poli_party,y=mean_ideo,fill=poli_party)) +
geom_bar(stat='identity') +
#geom_point(data=prod_data, aes(x=poli_party,y=gender_total),alpha=0.15, position="jitter") +
geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25) +
theme_bw() +
labs(x="Participant Political Party", y="Mean Gender Ideology") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=5, vjust = .7)) +
scale_fill_manual(values = bran_palette) +
theme(legend.position = "none")
ggsave("prod_ideology_party.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data %>%
group_by(workerid,poli_party,gender_total) %>%
ggplot(aes(x=poli_party, y=gender_total)) +
geom_boxplot()
final_dat_flight <- final_dat %>%
filter(lexeme=="flight attendant")
production_model_flight <- lmer(neutrality_binary~gender + (1|name), data=final_dat_flight)
summary(production_model_flight)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: neutrality_binary ~ gender + (1 | name)
Data: final_dat_flight
REML criterion at convergence: 347.9
Scaled residuals:
Min 1Q Median 3Q Max
-1.7447 -1.3874 0.5320 0.7019 0.8447
Random effects:
Groups Name Variance Std.Dev.
name (Intercept) 0.002587 0.05086
Residual 0.200701 0.44800
Number of obs: 274, groups: name, 24
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.67242 0.04182 24.68150 16.079 1.39e-14 ***
gendermale 0.08431 0.05833 24.21875 1.445 0.161
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr)
gendermale -0.717
prod_data_means_all %>%
filter(!is.na(poli_party)) %>%
#filter(poli_party != "Non-Partisan") %>%
group_by(gender,poli_party) %>%
summarize(mean_prop = mean(proportion), CI.Low = ci.low(proportion), CI.High = ci.high(proportion)) %>%
mutate(YMin = mean_prop - CI.Low, YMax = mean_prop + CI.High) %>%
ggplot(aes(x=poli_party,y=mean_prop,fill=poli_party)) +
geom_bar(stat='identity') +
geom_point(data=prod_data_means_all, aes(x=poli_party,y=proportion),alpha=0.15, position="jitter") +
geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25) +
facet_wrap(~ gender) +
theme_bw() +
labs(x="Participant Political Party", y="Mean Proportion of Neutral Responses",title="Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=5, vjust = .7)) +
scale_fill_manual(values = bran_palette) +
theme(legend.position = "none")
`summarise()` has grouped output by 'gender'. You can override using the `.groups` argument.
ggsave("prod_neutral_poli_bar_gender.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(morph_type == "compound") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
#filter(poli_party != "Non-Partisan") %>%
group_by(gender,poli_party) %>%
summarize(mean_prop = mean(response_neutral), CI.Low = ci.low(response_neutral), CI.High = ci.high(response_neutral)) %>%
mutate(YMin = mean_prop - CI.Low, YMax = mean_prop + CI.High) %>%
ggplot(aes(x=poli_party,y=mean_prop,fill=poli_party)) +
geom_bar(stat='identity') +
geom_point(data=prod_data_means_all, aes(x=poli_party,y=proportion),alpha=0.15, position="jitter") +
geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25) +
facet_wrap(~ gender) +
theme_bw() +
labs(x="Participant Political Party", y="Mean Proportion of Neutral Responses",title="Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=5, vjust = .7)) +
scale_fill_manual(values = bran_palette) +
theme(legend.position = "none")
`summarise()` has grouped output by 'gender'. You can override using the `.groups` argument.
ggsave("prod_neutral_poli_bar_nonmean.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data_binary_party <- prod_data %>%
filter(poli_party == "Democrat" | poli_party == "Republican") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="")
prod_neutral_poli_nomean_model <- lmer(response_neutral~poli_party + gender + (1|lexeme) + (1|name) + (1|workerid),data=prod_data_binary_party)
summary(prod_neutral_poli_nomean_model)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: response_neutral ~ poli_party + gender + (1 | lexeme) + (1 | name) + (1 | workerid)
Data: prod_data_binary_party
REML criterion at convergence: 3520.9
Scaled residuals:
Min 1Q Median 3Q Max
-2.6507 -0.7013 -0.1179 0.8024 2.8674
Random effects:
Groups Name Variance Std.Dev.
workerid (Intercept) 0.0333563 0.18264
name (Intercept) 0.0003246 0.01802
lexeme (Intercept) 0.0579523 0.24073
Residual 0.1485382 0.38541
Number of obs: 3332, groups: workerid, 238; name, 24; lexeme, 14
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.58062 0.06747 15.37391 8.606 2.88e-07 ***
poli_partyRepublican -0.17023 0.02728 235.99030 -6.240 2.01e-09 ***
gendermale -0.11952 0.01537 21.61134 -7.776 1.06e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) pl_prR
pl_prtyRpbl -0.185
gendermale -0.113 -0.002
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(morph_type == "compound") %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
#filter(poli_party != "Non-Partisan") %>%
group_by(gender,poli_party) %>%
summarize(mean_prop = mean(response_neutral), CI.Low = ci.low(response_neutral), CI.High = ci.high(response_neutral)) %>%
mutate(YMin = mean_prop - CI.Low, YMax = mean_prop + CI.High) %>%
ggplot(aes(x=gender,y=mean_prop,fill=gender)) +
geom_bar(stat='identity') +
geom_point(data=prod_data_means_all, aes(x=gender,y=proportion),alpha=0.15, position="jitter") +
geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25) +
facet_wrap(~ poli_party) +
theme_bw() +
labs(x="Stimulus Gender", y="Mean Proportion of Neutral Responses",title="Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=5, vjust = .7)) +
scale_fill_manual(values = bran_palette) +
theme(legend.position = "none")
`summarise()` has grouped output by 'gender'. You can override using the `.groups` argument.
ggsave("prod_neutral_gender_bar_nonmean.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data_means_all %>%
filter(!is.na(poli_party)) %>%
#filter(poli_party != "Non-Partisan") %>%
group_by(gender,poli_party) %>%
summarize(mean_prop = mean(proportion), CI.Low = ci.low(proportion), CI.High = ci.high(proportion)) %>%
mutate(YMin = mean_prop - CI.Low, YMax = mean_prop + CI.High) %>%
ggplot(aes(x=gender,y=mean_prop,fill=gender)) +
geom_bar(stat='identity') +
geom_point(data=prod_data_means_all, aes(x=gender,y=proportion),alpha=0.15, position="jitter") +
geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25) +
facet_wrap(~ poli_party) +
theme_bw() +
labs(x="Gender Seen", y="Mean Proportion of Neutral Responses",title="Neutral Responses by Stimuli Gender") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=5, vjust = .7)) +
scale_fill_manual(values = bran_palette) +
theme(legend.position = "none")
`summarise()` has grouped output by 'gender'. You can override using the `.groups` argument.
ggsave("prod_neutral_gender_bar.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data %>%
filter(!is.na(poli_party)) %>%
filter(morph_type == "compound") %>%
mutate(response_neutral = ifelse(response_gender == "neutral" | response_gender == "male/neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,lexeme,poli_party,subject_information.gender) %>%
summarise(proportion = mean(response_neutral)) %>%
group_by(gender,lexeme) %>%
summarize(mean_prop = mean(proportion), CI.Low = ci.low(proportion), CI.High = ci.high(proportion)) %>%
mutate(YMin = mean_prop - CI.Low, YMax = mean_prop + CI.High) %>%
ggplot(aes(x=gender,y=mean_prop,fill=gender)) +
geom_bar(stat='identity') +
geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25) +
facet_wrap(~lexeme) +
theme(legend.position = "none") +
labs(x="Participant Political Party", y="Mean Proportion of Gender-Neutral Responses",title="Proportions of Neutral Responses by Stimuli Gender", fill="Political Party") +
theme(text=element_text(size=16)) +
theme(axis.text.x = element_text(angle=20)) +
theme_grey()
`summarise()` has grouped output by 'gender', 'lexeme', 'poli_party'. You can override using the `.groups` argument.
`summarise()` has grouped output by 'gender'. You can override using the `.groups` argument.
ggsave("prod_neutral_morph_bar.png", width=7, height=5,path='/Users/branpap/Desktop/gender_processing/talks_and_papers/qp_paper/figures')
prod_data_means_all <- prod_data %>%
filter(!is.na(poli_party)) %>%
mutate(response_neutral = ifelse(response_gender == "neutral",1,0)) %>%
filter(gender!="filler" & gender!= "attention" & gender!="") %>%
group_by(gender,workerid,poli_party,subject_information.gender,subject_information.age,subject_information.education,gender_total) %>%
summarise(proportion = mean(response_neutral))
`summarise()` has grouped output by 'gender', 'workerid', 'poli_party', 'subject_information.gender', 'subject_information.age', 'subject_information.education'. You can override using the `.groups` argument.